Basics of Using vp, a Value-Pasing Front End for the Concurrency Workbench
نویسنده
چکیده
These notes describe some of the basics of using Glenn Bruns’ vp [1], which is a valuepassing front-end for the Concurrency Workbench [3]. The official documentation is available at http://www.bell-labs.com/user/grb/vp/vp.html, but it is fairly cryptic to the uninitiated. These notes are intended to fill in some of the gaps. 1 Running vp An overview of Glenn Bruns’ value-passing front end for the Concurrency Workbench is available at http://www.bell-labs.com/user/grb/vp/vp.html. In particular, that web page includes pointers to a (postscript) user’s guide [1] and the definition of value-passing CCS [2]. Running vp on the ECS Unix system is very simple: 1. Create a file with your definitions (see the rest of this writeup for more details). Make sure that the extension is .vp. For the rest of these instructions, imagine that the file is example.vp. 2. Run the following command at the Unix prompt (notice the .vp extension is not included): vp example 3. The result (if all goes well) is a file example.ccs that contains code that the Concurrency Workbench can handle. 2 Basic Components of Syntax 2.1 Constants Constants serve the purpose that constants usually serve in a programming language: they support abstraction and a more elegant coding style. They are especially useful for defining sets that will be used to index or parameterize actions and processes. Here are some sample constant declarations: const I = {1,2} const n = 5 const A = {2,4,6} Notice that, unlike CWB notation, these commands do not terminate with semi-colons. 1 2.2 Parameterized labels Parameterized labels are defined using the following syntax: label b(I) The result of this command is to create a channel b that accepts/passes values from the set I. The action corresponding to receiving a value on channel b is written as follows (where x is any variable): b(x) The result of this command in a process description is to instantiate the variable x with the value received. In contrast, the action corresponding to passing a value on channel b is written as follows (where e is any valid expression): ’b(e) Thus, by using a co-name (i.e., something preceded by the CWB ’), we indicate an output/passing action. For example, the agent Negate continually receives a bit value on channel a and spits out its negation on channel a: const Bit = {0,1}
منابع مشابه
A Front-end Generator for Veriication Tools
This paper describes the Process Algebra Compiler (PAC), a front-end generator for process-algebra-based veriication tools. Given descriptions of a process algebra's concrete and abstract syntax and semantics as structural operational rules, the PAC produces syntactic routines and functions for computing the semantics of programs in the algebra. Using this tool greatly sim-pliies the task of ad...
متن کاملA Front-End Generator for Verification Tools
This paper describes the Process Algebra Compiler (PAC), a front-end generator for process-algebra-based veriication tools. Given descriptions of a process algebra's concrete and abstract syntax and semantics as structural operational rules, the PAC produces syntactic routines and functions for computing the semantics of programs in the algebra. Using this tool greatly simpliies the task of ada...
متن کاملModeling and Verifying Distributed Systems Using Priorities: a Case Study Modeling and Verifying Distributed Systems Using Priorities 1
This paper illustrates the use of priorities in process algebras by a real-world example dealing with the design of a safety-critical network which is part of a railway signaling system. Priorities in process algebras support an intuitive modeling of distributed systems since undesired inter-leavings can be suppressed. This fact also leads to a substantial reduction of the sizes of models. We h...
متن کاملPriorities for Modeling and Verifying Distributed Systems
This paper illustrates the use of priorities in process algebras by a real-world example dealing with the design of a safety-critical network which is part of a railway signaling system. Priorities in process algebras support an intuitive modeling of distributed systems since undesired interleavings can be suppressed. This fact also leads to a substantial reduction of the sizes of models. We ha...
متن کاملModelling and verification of delay-insensitive circuits using CCS and the Concurrency Workbench
The modelling of delay-insensitive asynchronous circuits in the process calculus CCS is addressed. MUST-testing (rather than bisimulation) is found to support verification both of the property of delay-insensitivity and of design by stepwise refinement. Automated verification is possible with a well-known tool, the Edinburgh Concurrency Workbench.
متن کامل